import type { Component } from 'vue' //import type 是用来协助进行类型检查和声明的，在运行时是完全不存在的。

// 分页组件
import Pagination from '@/components/Pagination'
// 自定义表格工具组件
import RightToolbar from '@/components/RightToolbar'
// 富文本组件
import Editor from "@/components/Editor"
// 文件上传组件
import FileUpload from "@/components/FileUpload"
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
// 图片预览组件
import ImagePreview from "@/components/ImagePreview"
// 自定义树选择组件
import TreeSelect from '@/components/TreeSelect'
//自封上传图片
import uploadImage from "@/components/elMain/uploadImage.vue";
//选择时间
import DatePicker from "@/components/elMain/DatePicker.vue";
//时间区间
import datePickerRange from "@/components/elMain/datePickerRange.vue";
//自封上传附件
import uploadFile from "@/components/elMain/uploadFile.vue";

//系统组件
import selectImage from "@/components/SystemMain/selectImage";//选图片
import depTreeSelect from "@/components/SystemMain/depTreeSelect.vue";//选择部门
import dictCode from "@/components/elMain/dictCode.vue";//选择字典
import workTypeSelect from "@/components/elMain/workTypeSelect.vue";//选择工种
import userSelect from "@/components/elMain/userSelect.vue";//选择用户
import areaSelect from "@/components/elMain/areaSelect.vue";//省市区
import menuTree from "@/components/SystemMain/menuTree.vue";//菜单树状

// ✨如果使用的是 JS 可以删除类型校验
const components: {
  [propName: string]: Component //字面量类型，每个属性值类型为组件的类型
} = {
  ImageUpload, Editor, Pagination, RightToolbar, FileUpload, ImagePreview, TreeSelect,
  uploadImage, selectImage, DatePicker, datePickerRange, depTreeSelect, dictCode, workTypeSelect,
  userSelect, areaSelect, menuTree, uploadFile
}

export default components